const path = require("path");

const VueLoaderPlugin = require("vue-loader/lib/plugin");

const HtmlWebpackPlugin = require("html-webpack-plugin");

//公共的打包配置
module.exports = {
	//入口文件
	entry: "./src/main.js",
	//打包出口文件 这个里面我们需要用到__dirname来生成一个绝对路径
	output: {
		path: path.resolve(__dirname, "dist")
	},
	module: {
		rules: [{
				test: /\.vue$/,
				loader: 'vue-loader'
			},
			// 它会应用到普通的 `.js` 文件
			// 以及 `.vue` 文件中的 `<script>` 块
			{
				test: /.js$/,
				use: {
					loader: 'babel-loader',
					options: {
						presets: ['@babel/preset-env']
					}
				}
			},
			// 配置 eslint-loader 检查代码规范，应用到 .js 和 .vue 文件
			{
				test: /\.(js|vue)$/,
				use: 'eslint-loader',
				enforce: 'pre', // 编译前检查
				exclude: /node_modules/, // 不检查的文件
			},
			// 它会应用到普通的 `.css` 文件
			// 以及 `.vue` 文件中的 `<style>` 块
			{
				test: /\.css$/,
				use: ['style-loader', 'css-loader']
			},
			// 配置 less-loader ，应用到 .less 文件，转换成 css 代码
			{
				test: /\.less$/,
				use:['style-loader','css-loader','less-loader'],
				
			},
			{
				test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
				//对于文件的复制
				loader: "url-loader",
				//限制最大为10k
				options: {
					limit: 10 * 1024,
					esModule: false
				}
			}
		]
	},
	plugins: [
		new VueLoaderPlugin(),
		new HtmlWebpackPlugin({
			template: "./public/index.html"
		})
	]
};
